package br.org.universa.sgos.entidade;

import java.util.List;

import javax.persistence.AttributeOverride;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "DEP_DEPARTAMENTO")
@AttributeOverride(name="id", column=@Column(name="DEP_ID"))
public class Departamento extends Entidade {

    @Column(name = "DEP_CODIGO", nullable = false)
    private String codigo;

    @Column(name = "DEP_NOME")
    private String nome;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "departamento")
    private List<Agente> colaboradores;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "departamentoResponsavel")
    private List<Categoria> categoriasGerenciadas;

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public List<Agente> getColaboradores() {
        return colaboradores;
    }

    public void setColaboradores(List<Agente> colaboradores) {
        this.colaboradores = colaboradores;
    }

    public List<Categoria> getCategoriasGerenciadas() {
        return categoriasGerenciadas;
    }

    public void setCategoriasGerenciadas(List<Categoria> categoriasGerenciadas) {
        this.categoriasGerenciadas = categoriasGerenciadas;
    }

}
